Wireless data communication devices, such as wireless modems, LANs, etc., are becoming more and more popular as prices continue to drop and data rates to rise. There are two distinct approaches for enabling mobile wireless communications of packets of data. Here it will be understood that the term “mobile” has the classic meaning of being movable or capable of moving readily.
The first approach is to utilize existing infrastructure, such as cellular networks, traditional voice and data telecommunications networks, or the like. A major problem of this approach is that permanent infrastructure must be provided. Generally, these networks are based on static hierarchies of switches, trunks, feeders, routers, bridges, backbones, base sites, and other network entities. The topology and service coverage areas of these networks must be planned in advance, usually with long lead times. Once installed, the networks can be expensive and time consuming to change. These limitations inhibit the rapid growth, and reconfiguration of today's voice, text, data, and video information services. In situations where an instant infrastructure is needed, as for example in natural disasters, military engagements, etc., this is a serious problem. Another problem of this approach is the problem of handoff. As a mobile host moves out of the range of one base station and into the range of another, how should the connection be smoothly handed over to the new base station without noticeable delay or packet loss.
A second approach, which solves many of the infrastructure problems, is to let users who wish to communicate with each other form an ad-hoc network and collaborate amongst themselves to deliver data packets from a source to its destination, generally via one or more intermediate nodes. This form of networking has several advantages when compared to traditional cellular systems. Generally, a major advantage is that the ad-hoc networks don't rely on hard wired basestations and other fixed infrastructures. A second advantage is that the ad-hoc network is fault tolerant. In a cellular system, a malfunction in a base station impairs all mobiles in its cell. In ad-hoc networks, a malfunction in one node can be easily overcome through network reconfiguration. Also, an ad-hoc network has unconstrained connectivity, i.e. the network is not limited by wiring, physical cabling, etc.
In previous ad-hoc network concepts, each node includes a decision engine which makes near-real-time decisions on packet disposition as a function of one or more typical parameters. The parameters include packet destination address, packet hop count, and packet type. Each node in the network has a unique address and each packet includes the address of its destination node. Each time a packet is repeated (i.e. transmitted to the next node), a hop counter accompanying the packet is incremented. Thus, each node has access to a tally of links or nodes traversed since the packet was originated. As an example of a decision made by the decision engine using this parameter, the packet may include a maximum number of hops which may be initiated. In the previous concepts, packet types included “flood” packets which are to be retransmitted (repeated) as long as the hop count does not exceed some specified maximum carried in the packet, and data packets which are repeated only if the hop count to the destination does not exceed some maximum value.
A major problem with prior art ad-hoc networks is the fact that they are limited in range by the individual node's transmission range. In ad-hoc networks, a message is passed from one node to another node until the destination is reached. Thus, in busy ad-hoc networks or during busy periods, many packets may be directed through additional nodes because of interference (simultaneous transmissions) with other packets, i.e. the destination or a more convenient path is not available. In many instances this can result in many additional hops with each hop using power from the limited power source (generally a battery) of each node that is involved. Also, in many instances a node may use too much power to communicate with an adjacent node or may use to little power so that several small hops result.
Accordingly it is highly desirable to provide apparatus and a method of solving these problems which is inexpensive and easy to use.